package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.UserLike;
import com.tanhua.dubbo.server.pojo.Visitors;

import java.util.List;

public interface UserLikeApi {

    /**
     * 喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean likeUser(Long userId, Long likeUserId);

    /**
     * 不喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean notLikeUser(Long userId, Long likeUserId);

    /**
     * 是否相互喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean isMutualLike(Long userId, Long likeUserId);

    //查询redis喜欢列表
    List<Long> queryLikeList(Long userId);

    //查询redis不喜欢列表
    List<Long> queryNotLikeList(Long userId);

    //查询我喜欢的用户数量
    Long queryMyLikeUserCount(Long uid);

    //查询喜欢我的用户数量
    Long queryLikeMeUserCount(Long uid);

    //查询互相喜欢的用户数量
    Long mutualLikeUserCount(Long uid);

    //查询我喜欢的用户列表
    List<UserLike> queryMyLikeUser(Long uid, Integer page, Integer pageSize);

    //查询喜欢我的用户列表
    List<UserLike> queryLikeMeUser(Long uid, Integer page, Integer pageSize);

    //查询互相喜欢的用户列表
    List<UserLike> mutualLikeUser(Long uid, Integer page, Integer pageSize);

    //谁看过我列表
    List<Visitors> queryLookMeUser(Long uid, Integer page, Integer pageSize);

    //是否已喜欢
    boolean isLike(Long userId, Long likeUserId);

    //喜欢 - 取消
    void dislike(Long userId,String likeUserId);

    //粉丝 - 喜欢
    void fansLove(Long userId,String likeUserId);

    //是否已喜欢
    Boolean isAlreadyLike(String id, Long userId);
}